package com.hjj.springboot.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


@TableName("t_product")
@Data
public class Product {

    @ExcelProperty("商品编号")
    @ColumnWidth(20)
    private Integer id; // 编号

    @ExcelProperty("商品名称")
    @ColumnWidth(20)
    private String name; // 名称

    @ExcelProperty("商品价格")
    @ColumnWidth(20)
    private BigDecimal price; // 价格

    @ExcelProperty("计量单位")
    @ColumnWidth(20)
    private String countUnit; //计量单位

    @ExcelProperty("商品折扣")
    @ColumnWidth(20)
    private Double discount; //折扣

    @ExcelIgnore
    private String productIntroImgs; // 商品介绍图片

//    private String productParaImgs;  // 商品规格参数图片

    @ExcelProperty("产地")
    @ColumnWidth(20)
    private String origin; // 产地

    @ExcelProperty("保质期")
    @ColumnWidth(20)
    private String expiration; //保质期

    @ExcelProperty("储存方式")
    @ColumnWidth(20)
    private String storage ;    //储存方式

    @ExcelIgnore
    private String proPic="default.jpg"; // 商品图片

    @ExcelIgnore
    private boolean isHot=false; // 是否热门推荐商品

    @ExcelIgnore
    private boolean isSwiper=false; // 是否轮播图片商品

    @ExcelIgnore
    private Integer swiperSort=0; // 轮播排序

    @ExcelIgnore
    private String swiperPic="default.jpg"; // 商品轮播图片

    @ExcelProperty("商品描述")
    @ColumnWidth(50)
    private String description; // 描述

    @ExcelProperty("所属小类编号")
    @ColumnWidth(20)
    private Integer typeId;

    @ExcelIgnore
    @TableField(select = false)
    private SmallType type; // 商品类别

    @ExcelProperty("热门推荐时间")
    @ColumnWidth(20)
    @JsonSerialize(using=CustomDateTimeSerializer.class)
    @TableField(updateStrategy  = FieldStrategy.IGNORED)
    private Date hotDateTime; // 设置热门推荐日期时间

    @ExcelIgnore
    @TableField(select = false)
    private List<ProductSwiperImage> productSwiperImageList;  // 商品轮播图片


}
